\section{R\'{e}f\'{e}rence de la classe CInstruction}
\label{classCInstruction}\index{CInstruction@{CInstruction}}
Classe des instructions du code 3 adresses.  


{\tt \#include $<$instructions.h$>$}

Graphe de collaboration de CInstruction:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=53pt]{classCInstruction__coll__graph}
\end{center}
\end{figure}
\subsection*{Fonctions membres publiques}
\begin{CompactItemize}
\item 
{\bf CInstruction} ({\bf Instr\-Op} {\bf op})
\begin{CompactList}\small\item\em Constructeur de base. \item\end{CompactList}\item 
{\bf CInstruction} ({\bf Instr\-Op} {\bf op}, {\bf Symbol\-Id} {\bf id1})
\begin{CompactList}\small\item\em Constructeur pour instruction sur 1 symbole. \item\end{CompactList}\item 
{\bf CInstruction} ({\bf Instr\-Op} {\bf op}, {\bf Symbol\-Id} {\bf id1}, {\bf Symbol\-Id} {\bf id2})
\begin{CompactList}\small\item\em Constructeur pour instruction sur 2 symboles. \item\end{CompactList}\item 
{\bf CInstruction} ({\bf Instr\-Op} {\bf op}, {\bf Symbol\-Id} {\bf id1}, {\bf Symbol\-Id} {\bf id2}, {\bf Symbol\-Id} {\bf id3})
\begin{CompactList}\small\item\em Constructeur pour instruction sur 3 symboles. \item\end{CompactList}\item 
{\bf CInstruction} ({\bf Symbol\-Id} id, bool {\bf b})
\begin{CompactList}\small\item\em Constructeur pour affectation de constante bool\'{e}enne. \item\end{CompactList}\item 
{\bf CInstruction} ({\bf Symbol\-Id} id, int {\bf i})
\begin{CompactList}\small\item\em Constructeur pour affectation de constante entiere. \item\end{CompactList}\item 
{\bf CInstruction} ({\bf Symbol\-Id} id, float {\bf f})
\begin{CompactList}\small\item\em Constructeur pour affectation de constante flottante. \item\end{CompactList}\item 
{\bf CInstruction} ({\bf CType} {\bf t}, {\bf Symbol\-Id} leftid, {\bf Symbol\-Id} rightid)
\begin{CompactList}\small\item\em Constructeur pour un cast. \item\end{CompactList}\item 
{\bf CInstruction} ({\bf Instr\-Op} {\bf op}, {\bf Label\-Id} {\bf label})
\begin{CompactList}\small\item\em Constructeur pour un label ou un goto. \item\end{CompactList}\item 
string {\bf to\-String} ()
\begin{CompactList}\small\item\em Convertit une instruction en cha\^{\i}ne. \item\end{CompactList}\end{CompactItemize}
\subsection*{Attributs priv\'{e}s}
\begin{CompactItemize}
\item 
{\bf Instr\-Op} {\bf op}
\begin{CompactList}\small\item\em Op\'{e}rateur de l'instruction. \item\end{CompactList}\item 
{\bf CType} {\bf t}
\begin{CompactList}\small\item\em Type cible dans le cas d'un cast. \item\end{CompactList}\item 
bool {\bf b}
\begin{CompactList}\small\item\em Constante bool\'{e}enne. \item\end{CompactList}\item 
int {\bf i}
\begin{CompactList}\small\item\em Constante enti\`{e}re. \item\end{CompactList}\item 
float {\bf f}
\begin{CompactList}\small\item\em Constante flottante. \item\end{CompactList}\item 
{\bf Label\-Id} {\bf label}
\begin{CompactList}\small\item\em Identifiant de label. \item\end{CompactList}\end{CompactItemize}
\begin{Indent}{\bf Op\'{e}randes symboles}\par
{\em Les symboles non utilis\'{e}s sont fix\'{e}s \`{a} SYMBOLID\_\-NULL \`{a} l'instanciation. }\begin{CompactItemize}
\item 
{\bf Symbol\-Id} {\bf id1}
\item 
{\bf Symbol\-Id} {\bf id2}
\item 
{\bf Symbol\-Id} {\bf id3}
\end{CompactItemize}
\end{Indent}


\subsection{Description d\'{e}taill\'{e}e}
Classe des instructions du code 3 adresses. 

Une instruction est d\'{e}finie par un op\'{e}rateur et des op\'{e}randes. Suivant le type d'instruction, les op\'{e}randes sont de diff\'{e}rentes natures :\begin{itemize}
\item de 1 \`{a} 3 symboles\item une constante (pour les affectations de constantes)\item un type (pour un cast) ;\item un identifiant de label (pour un goto ou un label) \end{itemize}




D\'{e}finition \`{a} la ligne 82 du fichier instructions.h.

\subsection{Documentation des contructeurs et destructeur}
\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}CInstruction::CInstruction ({\bf Instr\-Op} {\em op})}\label{classCInstruction_addf97296ca6c05e6b942affb0ad5ee2}


Constructeur de base. 



D\'{e}finition \`{a} la ligne 19 du fichier instructions.cpp.

R\'{e}f\'{e}rences id1, id2, id3, et SYMBOLID\_\-NULL.\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}CInstruction::CInstruction ({\bf Instr\-Op} {\em op}, {\bf Symbol\-Id} {\em id1})}\label{classCInstruction_6b7037c91076f98e61b06e8d4c9507fc}


Constructeur pour instruction sur 1 symbole. 



D\'{e}finition \`{a} la ligne 27 du fichier instructions.cpp.

R\'{e}f\'{e}rences id2, id3, et SYMBOLID\_\-NULL.\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}CInstruction::CInstruction ({\bf Instr\-Op} {\em op}, {\bf Symbol\-Id} {\em id1}, {\bf Symbol\-Id} {\em id2})}\label{classCInstruction_c48bab201ddf29c0196fb88b09c8e3e0}


Constructeur pour instruction sur 2 symboles. 



D\'{e}finition \`{a} la ligne 35 du fichier instructions.cpp.

R\'{e}f\'{e}rences id3, et SYMBOLID\_\-NULL.\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}CInstruction::CInstruction ({\bf Instr\-Op} {\em op}, {\bf Symbol\-Id} {\em id1}, {\bf Symbol\-Id} {\em id2}, {\bf Symbol\-Id} {\em id3})}\label{classCInstruction_22afd7004fad5c86ee59aa2fd1c2b691}


Constructeur pour instruction sur 3 symboles. 



D\'{e}finition \`{a} la ligne 43 du fichier instructions.cpp.\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}CInstruction::CInstruction ({\bf Symbol\-Id} {\em id}, bool {\em b})}\label{classCInstruction_033d6d1aa853175102045afbdfc40631}


Constructeur pour affectation de constante bool\'{e}enne. 



D\'{e}finition \`{a} la ligne 53 du fichier instructions.cpp.

R\'{e}f\'{e}rences id1, id2, id3, INSTR\_\-AFFB, op, et SYMBOLID\_\-NULL.\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}CInstruction::CInstruction ({\bf Symbol\-Id} {\em id}, int {\em i})}\label{classCInstruction_08fafd0aafbb15282ed1629b23629884}


Constructeur pour affectation de constante entiere. 



D\'{e}finition \`{a} la ligne 62 du fichier instructions.cpp.

R\'{e}f\'{e}rences id1, id2, id3, INSTR\_\-AFFI, op, et SYMBOLID\_\-NULL.\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}CInstruction::CInstruction ({\bf Symbol\-Id} {\em id}, float {\em f})}\label{classCInstruction_bdc10aa285abcf194ad235b69b7d2a5e}


Constructeur pour affectation de constante flottante. 



D\'{e}finition \`{a} la ligne 71 du fichier instructions.cpp.

R\'{e}f\'{e}rences id1, id2, id3, INSTR\_\-AFFF, op, et SYMBOLID\_\-NULL.\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}CInstruction::CInstruction ({\bf CType} {\em t}, {\bf Symbol\-Id} {\em leftid}, {\bf Symbol\-Id} {\em rightid})}\label{classCInstruction_904507b57ac26b8815fb5bc56b869ff8}


Constructeur pour un cast. 

\begin{Desc}
\item[Param\`{e}tres:]
\begin{description}
\item[{\em t}]Type cible \item[{\em leftid}]Id du symbole cible \item[{\em rightid}]Id du symbole \`{a} caster \end{description}
\end{Desc}


D\'{e}finition \`{a} la ligne 81 du fichier instructions.cpp.

R\'{e}f\'{e}rences id1, id2, id3, INSTR\_\-CAST, op, SYMBOLID\_\-NULL, et t.\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\index{CInstruction@{CInstruction}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}CInstruction::CInstruction ({\bf Instr\-Op} {\em op}, {\bf Label\-Id} {\em label})}\label{classCInstruction_79ccf6a7eab768b51eff28714bf3cbec}


Constructeur pour un label ou un goto. 



D\'{e}finition \`{a} la ligne 91 du fichier instructions.cpp.

R\'{e}f\'{e}rences id1, id2, id3, et SYMBOLID\_\-NULL.

\subsection{Documentation des fonctions membres}
\index{CInstruction@{CInstruction}!toString@{toString}}
\index{toString@{toString}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}string CInstruction::to\-String ()}\label{classCInstruction_c3a8a4bb4ef1d2581a167c28d7f0aea4}


Convertit une instruction en cha\^{\i}ne. 



D\'{e}finition \`{a} la ligne 101 du fichier instructions.cpp.

R\'{e}f\'{e}rences b, f, i, id1, id2, id3, INSTR\_\-ADD, INSTR\_\-AFF, INSTR\_\-AFFB, INSTR\_\-AFFF, INSTR\_\-AFFI, INSTR\_\-AND, INSTR\_\-CAST, INSTR\_\-DEREF, INSTR\_\-DIV, INSTR\_\-EQL, INSTR\_\-GOTO, INSTR\_\-GRT, INSTR\_\-IF, INSTR\_\-IFNOT, INSTR\_\-LABEL, INSTR\_\-LOW, INSTR\_\-MUL, INSTR\_\-NEQ, INSTR\_\-NOT, INSTR\_\-OR, INSTR\_\-REF, INSTR\_\-REFAFF, INSTR\_\-SUB, label, op, t, et CType::to\-String().

Voici le graphe d'appel pour cette fonction:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=134pt]{classCInstruction_c3a8a4bb4ef1d2581a167c28d7f0aea4_cgraph}
\end{center}
\end{figure}


\subsection{Documentation des donn\'{e}es membres}
\index{CInstruction@{CInstruction}!b@{b}}
\index{b@{b}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool {\bf CInstruction::b}\hspace{0.3cm}{\tt  [private]}}\label{classCInstruction_858b36cb06f5b54a427e6f2c0b13dcc3}


Constante bool\'{e}enne. 



D\'{e}finition \`{a} la ligne 96 du fichier instructions.h.

R\'{e}f\'{e}renc\'{e} par to\-String().\index{CInstruction@{CInstruction}!f@{f}}
\index{f@{f}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}float {\bf CInstruction::f}\hspace{0.3cm}{\tt  [private]}}\label{classCInstruction_232e8e9bf4f5633853b8f5bd431a5d85}


Constante flottante. 



D\'{e}finition \`{a} la ligne 98 du fichier instructions.h.

R\'{e}f\'{e}renc\'{e} par to\-String().\index{CInstruction@{CInstruction}!i@{i}}
\index{i@{i}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int {\bf CInstruction::i}\hspace{0.3cm}{\tt  [private]}}\label{classCInstruction_62b94664606dddd992aeda3748243521}


Constante enti\`{e}re. 



D\'{e}finition \`{a} la ligne 97 du fichier instructions.h.

R\'{e}f\'{e}renc\'{e} par to\-String().\index{CInstruction@{CInstruction}!id1@{id1}}
\index{id1@{id1}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Symbol\-Id} {\bf CInstruction::id1}\hspace{0.3cm}{\tt  [private]}}\label{classCInstruction_bf20c22476419fca9c48a5dc9fb8c677}




D\'{e}finition \`{a} la ligne 91 du fichier instructions.h.

R\'{e}f\'{e}renc\'{e} par CInstruction(), et to\-String().\index{CInstruction@{CInstruction}!id2@{id2}}
\index{id2@{id2}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Symbol\-Id} {\bf CInstruction::id2}\hspace{0.3cm}{\tt  [private]}}\label{classCInstruction_f9c878f3d039f08ff58ea310ea91b6f8}




D\'{e}finition \`{a} la ligne 91 du fichier instructions.h.

R\'{e}f\'{e}renc\'{e} par CInstruction(), et to\-String().\index{CInstruction@{CInstruction}!id3@{id3}}
\index{id3@{id3}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Symbol\-Id} {\bf CInstruction::id3}\hspace{0.3cm}{\tt  [private]}}\label{classCInstruction_c40db140451be986c1eb8c51a3712656}




D\'{e}finition \`{a} la ligne 91 du fichier instructions.h.

R\'{e}f\'{e}renc\'{e} par CInstruction(), et to\-String().\index{CInstruction@{CInstruction}!label@{label}}
\index{label@{label}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Label\-Id} {\bf CInstruction::label}\hspace{0.3cm}{\tt  [private]}}\label{classCInstruction_60c00ce10d157982aeec77fc8e9b5c8a}


Identifiant de label. 



D\'{e}finition \`{a} la ligne 99 du fichier instructions.h.

R\'{e}f\'{e}renc\'{e} par to\-String().\index{CInstruction@{CInstruction}!op@{op}}
\index{op@{op}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Instr\-Op} {\bf CInstruction::op}\hspace{0.3cm}{\tt  [private]}}\label{classCInstruction_6c5242acb2a779cd5a55a321e8a0d862}


Op\'{e}rateur de l'instruction. 



D\'{e}finition \`{a} la ligne 85 du fichier instructions.h.

R\'{e}f\'{e}renc\'{e} par CInstruction(), et to\-String().\index{CInstruction@{CInstruction}!t@{t}}
\index{t@{t}!CInstruction@{CInstruction}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf CType} {\bf CInstruction::t}\hspace{0.3cm}{\tt  [private]}}\label{classCInstruction_50eb05b62dfcb9156cdda5ce86753f2b}


Type cible dans le cas d'un cast. 



D\'{e}finition \`{a} la ligne 102 du fichier instructions.h.

R\'{e}f\'{e}renc\'{e} par CInstruction(), et to\-String().

La documentation de cette classe a \'{e}t\'{e} g\'{e}n\'{e}r\'{e}e \`{a} partir des fichiers suivants:\begin{CompactItemize}
\item 
{\bf instructions.h}\item 
{\bf instructions.cpp}\end{CompactItemize}
